#pragma once
#include "PlayerItem.h"

namespace catan
{
	class Road : public PlayerItem
	{
	public:
		Road(void);
		~Road(void);
		Handle<Edge> GetEdge() const { return mEdge; }
		void SetEdge(Handle<Edge> val) { mEdge = val; }

		Handle<Player> GetPlayer() const { return mPlayer; }
		void SetPlayer(Handle<Player> val) { mPlayer = val; }
		static FieldResourceTypes GetBuyCards()
		{
			FieldResourceTypes p;
			p.push_back(FieldResourceType::Brick);
			p.push_back(FieldResourceType::Wood);
			return p;
		}
	private:
		Handle<Edge> mEdge;
		
		Handle<Player> mPlayer;
	public:
		template<class Serializer>
		void serialize(Serializer & s, const unsigned int version)
		{
			s & boost::serialization::base_object<PlayerItem>(*this);
			s & mEdge & mPlayer;
		}
		
	};
}	